package yb.ecp.fast.user.dao.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import yb.ecp.fast.user.dao.entity.AuthDO;
import yb.ecp.fast.user.dao.entity.MenuDO;

import java.util.List;

@Mapper
public interface MenuMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(MenuDO record);

    int insertSelective(MenuDO record);

    MenuDO selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(MenuDO record);

    int updateByPrimaryKey(MenuDO record);

    List<MenuDO> selectByMenuIds(List<Integer> menuIds);

    List<MenuDO> selectMenus(@Param("all")Boolean all, @Param("channel")int channel);

    List<MenuDO> getParentList();

    List<MenuDO> getAllList();
    List<MenuDO> getDisplayedList(Integer site);



    Integer checkIsExitChild(Integer parentId);

    List<MenuDO> getChildList(Integer parentId);

    List<MenuDO> getChildrenBySite(@Param("parentId")Integer parentId,@Param("site")Integer site);
    List<MenuDO> queryListMenuForConfig(@Param("parentId")Integer parentId,@Param("site")Integer site);

    /**
     * 根据角色id获取菜单信息
     * @param ids
     * @return
     */
    List<MenuDO> getMenuByRoleIds(List<String> ids);
    List<Integer> listShownMenu();


    List<Integer> listDisplayMenuId();

    /**
     * 根据menuID获取对应的权限ID集合
     * @param menuId
     * @return
     */
    List<Integer> getAuthIdList( Integer menuId);

    /**
     * 根据menuID获取对应的权限集合
     * @param menuId
     * @return
     */
    List<AuthDO> selectAuthListByMenu( Integer menuId);

    /**
    *@Description 查询所有权限集合
    *@Author wzy
    *@Date 2020/8/27
    *@Time 11:32
    */
    List<AuthDO> selectAuthList();


    Integer getAuthIdByMenu(Integer menuId);

	/**
     * 根据roleId查询对应的权限集合
     * @param roleId
     * @return
     */
    List<AuthDO> selectAuthListByRole(String roleId);


    List<Integer> selectBySite(Integer site);
}
